package top.yxqz.sprinmvc.error;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * @author: 余小小
 * @date: 2023/5/19
 * @description：
 * @ControllerAdvice ：表示当前类是一个异常解析器
 * @ExceptionHandler ：指定异常类型（要处理的）
 * 如果xml的方式和注解方式同时存在 ，MVC会先找注解有没有处理该异常
 *  1.如果注解处理了该异常类型，则走注解的方式处理
 *  2.如果注解没有处理该异常类型，则走xml
 *  3.如果xml也没走，则交给框架或JDK处理
 */
@ControllerAdvice
public class MyExceptionResolver {


    /**
     * 处理ArithmeticException异常的
     *
     * @param model 数据模型
     * @return 视图名称
     */
    @ExceptionHandler(ArithmeticException.class)
    public String myArithmeticException(Model model) {
        model.addAttribute("error_msg", "你使用0作为分母，这样是不对的");
        return "error";
    }

}
